-
Notifications
You must be signed in to change notification settings - Fork 4
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
WIP: 🛝 Playground #442
Draft
brettimus
wants to merge
156
commits into
main
Choose a base branch
from
playground
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Draft
WIP: 🛝 Playground #442
+21,731
−497
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
* Embedded scaffolding wip * Rewrite embedded implementation to a middleware handler * Playground as an embedded app * Add CDN support for embedded asset loading * Add playground dist to the repo * Use js deliver cdn for api for now * Update build * Format --------- Co-authored-by: Brett Beutell <[email protected]>
* wip * Add auth section * Improve Auth stuff * Bearer form tweak * Minor tweak * Refactor AuthSelector
* initial workflow setup * setup a simple api for now * WIP * WIP * remove workflows-api * stub workeroni * more UI updates * lockfile * update the workflows * attempt to load the openapi spec like the root app * vite redirects for dev * remove dead schema hooks * update data loading workflow routes * remove workeroni * mount the workflow routes on embedded * rework the interface for embedded playground mounting - serialize all options into data-options attribute on <div root> * update the hooks to load the updated data-options thing faster * simplify types * clean up workflow root * load openapi in to workflow/create * load initial three panel ui updates * resolved routeTree.gen.ts * update schemas so they parse correctly * change input types * update the detail view so it shows inputs * resolve the input runtime expressions to values from inputs * formattingggggg * add command bar and load the data in the component so it re-renders (as opposed to from route) * add a base prefix to fetch calls * for some reason getWorkflows got yeet * tsc complaints * bump version * more ts complaints * Playground auth tweak (#454) * Add spinner * Implementation of early design * Cleanup * ship fixes from late friday * resolve version dynamically from package.json * update layout with top bar * unify sidebar and use new screen without button * add floaty workflow input - WorkflowCommand * set default preloads for snippier effect * formatting --------- Co-authored-by: Jacco Flenter <[email protected]>
* Tweak routing logic * Fix routing * Format code * Simplify * Move settings to url And remove it from the uiSlice (since it's not being used there anyway) * Minor settings improvements * moved SettingsScreen component to avoid an issue with aria-bidden * tweaked behaviour so we don't end up with `settings=false` in the querystring * Undo change to index.html
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Creates a
playground
folder that has a SPA that looks suspiciously similar to Studio.It's using the designs in Figma
TODO
playground/dist
from git, since we can just publish new packages that contain the assetsRunning the playground
Easy. It uses port
6660
👹cd playground
pnpm dev
Need routes?
Publishing the embedded playground
The
@fiberplane/embedded
library is published with the playground assets. We serve those over the jsdelivr cdn.To cut a new update:
First, update
package.json
to the new version.Then update the typescript constant
VERSION
that's used in theCDN_URL
variable to match the new package.json version (we will automate this eventually)Finally, from project root:
pnpm build:embedded cd packages/embedded pnpm publish
This will use the dist files from
playground
in the published package as well.Then, to integrate:
Component copy-pasting
For now, many components are copied-pasted-modified from Studio.
The following things were removed during said copy-paste-modify
The following was added:
ProbedRoutes
type that studio expects in the UI.Getting the OpenAPI Spec
The middleware (
@fiberplane/embedded
) knows how to handle the spec parameter. It either passes through the spec, if one was passed as a parameter, or if thespec
parameter was a string then it attempts to fetch the spec (it assumes the string is a URL to a json OpenAPI spec)The middleware then serializes a
ResolvedSpecResult
type into the DOM.The result can either be:
success
,error
or `empty. If the Result is an error, it may have additional properties on it that communicate to the Frontend that the frontend should retry fetching the spec. ((I added this functionality because of issues I bumped into in production on Cloudflare workers.))Theming
Needs more thought.
See
playground/src/index.css
I had gemini try to convert all the tokens from figma into css variables, it may have gotten a few wrong.
I haven't put much effort into naming semantic tokens we can ultimately use in the UI alongside the shadcn ones.
Contrast is quite low for
muted
colors right now, that likely needs some tweaking.Using orange for the accent color can get quite aggressive sometimes. We will likely want some overrides on the default button component that comes with shadcn in order to adapt it for our new designs.